当前位置:  开发笔记 > 编程语言 > 正文

{%load static%}和{%load staticfiles%}:哪个更受欢迎?

如何解决《{%loadstatic%}和{%loadstaticfiles%}:哪个更受欢迎?》经验,为你挑选了1个好方法。

我不确定它们的区别是什么,看起来它们都在起作用.我用Google搜索,似乎它们几乎是一样的.只是出于好奇,人们在现场使用哪一个?

我读过但仍然不知道何时使用哪个,以及该领域的哪个人使用.我的工作都适合他们.起初我以为它是加载静态文件夹,但它也适用于静态文件... -



1> Maxime Loran..:

目前(Django 1.9及更早版本),从contrib应用程序{% load staticfiles %}加载statictemplatetag,该应用程序具有比内置更多的功能django.core.static.

最重要的区别是staticfiles可以管理存储在CDN上的文件,因为它的解析器可以管理哈希值.core.static仅附加STATIC_URL到静态文件名,如果您正在处理文件,这是不够的(例如,添加md5哈希以清除版本之间的缓存)

这种差异是由于管理非本地存储文件并不专门包含在Django的核心包中,但对许多开发人员来说仍然有用,可以作为官方的contrib包实现.因此,如果您开始使用staticfiles,则必须记住在模板中使用它.但是,可能会出现一些问题,例如在使用Media类时,所以决定将这两个模板标签合并为一个并使用不同的行为,无论开发人员是否django.contrib.staticfiles在其中INSTALLED_APPS.

从Django 1.10开始(也参见Django跟踪器中的票证),如果激活,{% load static %}将在staticfiles内部使用(oherwise保持默认行为),并且不推荐使用contrib包中的templatetag以避免混淆.

TL; DR

在Django 1.10之前:staticfiles加载一个模板标签,可以管理static不能(或不容易)的非本地存储;

从Django 1.10:contrib.staticfiles应用程序仍然存在但其模板标签将被删除只有{% static %}模板标签保留;

从Django 2.0(我相信):{% load staticfiles %}被删除.

现在,staticfiles如果您使用相关的contrib应用程序(并且您知道为什么使用它)直到Django 1.10 ,请使用templatetags,否则只需使用static.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有